package lib.bone.nepudata.domain.dto.paper;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.persistence.Column;
import javax.validation.constraints.*;
import java.util.Date;
import java.util.List;

/**
 * @Author : leiyusheng
 * @Date : 2022-1-12
 */

@Data
@ApiModel(value = "论文更新DTO")
public class NepuPaperUpdateDTO {
    @NotBlank(message = "论文/成果ID不可为空")
    @ApiModelProperty(value = "论文/成果ID",name = "id")
    String id;

    @NotBlank(message = "论文/成果词典ID不可为空")
    @ApiModelProperty(value = "论文/成果词典ID",notes = "")
    String paperDictId;

    /** 论文标题 @TIPS 赵春雨 **/
    @NotBlank(message = "论文标题不可为空")
    @ApiModelProperty("论文标题")
    @Column(name = "paper_title")
    String paperTitle;


//    @ApiModelProperty(value = "申请人",notes = "")
//    @Column(name = "applicant")
//    String applicant;

    //String papar

    /**
     * 第一署名单位
     */
    @NotBlank(message = "第一署名单位不可为空")
    @ApiModelProperty(value = "第一署名单位")
    String firstSignatureUnit;

    /**
     * 论文发表时间
     */
    @ApiModelProperty(value = "论文发表时间",notes = "论文发表时间，如2020-01-01")
    @JsonFormat(pattern="yyyy-MM-dd",timezone = "GMT+8")
    Date paperPublicationTime;

    /**
     * 第一作者
     */
    @NotBlank(message = "第一作者不可为空")
    @ApiModelProperty(value = "第一作者")
    String firstAuthor;

    /**
     * 第一作者 ID
     */
    @NotNull(message = "第一作者ID不可为空")
    @ApiModelProperty(value = "第一作者ID",notes = "缺省值0代表不在教工系统中")
    Long firstAuthorId;

    /**
     * 第二作者
     */
    @NotBlank(message = "第二作者不可为空")
    @ApiModelProperty(value = "第二作者")
    String secondAuthor;

    /**
     * 第二作者ID
     */
    @NotNull(message = "第二作者ID不可为空")
    @ApiModelProperty(value = "第二作者ID",notes = "缺省值0代表不在教工系统中")
    Long secondAuthorId;

    /**
     * 通讯作者
     */
    @NotBlank(message = "通讯作者不可为空")
    @ApiModelProperty(value = "通讯作者",notes = "")
    String correspondingAuthor;

    /**
     * 通讯作者ID
     */
    @NotNull(message = "通讯作者ID不可为空")
    @ApiModelProperty(value = "通讯作者ID",notes = "缺省值0代表不在教工系统中")
    Long correspondingAuthorId;
    /**
     * 论文总字数
     */
    @NotNull(message = "论文总字数不可为空")
    @ApiModelProperty(value = "论文总字数")
    Double paperTotalNumber;

    /**
     * 负责人总字数
     */
    @NotNull(message = "负责人总字数不可为空")
    @ApiModelProperty(value = "负责人总字数")
    Double chargeTotalNumber;

    /**
     * 期刊名称
     */
    @ApiModelProperty(value = "期刊名称")
    @NotBlank(message = "期刊名称不可为空")
    String journalName;

    /**
     * 刊号
     */
    @ApiModelProperty(value = "刊号")
    @NotBlank(message = "刊号不可为空")
    String issueNumber;

    @DecimalMin("0")
    @DecimalMax("2")
    @ApiModelProperty(value = "指导教师身份",notes = "0 无 1 第二作者 2 通讯作者")
    Integer teacherIdentity;

    /**
     * 分配所得工作量
     */
    @NotNull(message = "工作量不可为空")
    @ApiModelProperty(value = "工作量",notes = "")
    Integer workload;

//    @NotEmpty(message = "关联文件不可为空")
    @ApiModelProperty(value = "关联文件ID列表")
    List<String> fileIds;
}
